A database system allows multiple client devices to share access to databases over a network. In conventional database implementations, it can be difficult to balance the conflicting requirements of storage capacity and IO throughput. IO operations on object storage servers are generally performed directly with back-end storage arrays associated with those servers, and the corresponding storage devices may not be well matched to the current needs of the system. This can lead to situations in which either performance is less than optimal or the costs of implementing the system become excessive.
SQL (Structured Query Language) is a programming language that can be used to manage data stored in a relational database management system (RDBMS). The most common operation in SQL is the query, which is performed with a declarative select statement. A SQL query retrieves data from one or more tables or expressions. Tiered storage is a data storage environment consisting of two or more kinds of storage delineated by differences in price, performance, capacity and/or functionality. The performance of a SQL query may be impaired when the target data is stored on multiple storage tiers or when the target data is stored on a storage tier offering a lower performance level.
Accordingly, despite the many advantages of database systems, a need remains for additional improvements, particularly with regard to IO operations. A need exists for user-directed storage tiering control that allows selected data, independent of database or application environment, to be promoted and/or demoted among storage tiers in context of dynamic business data priorities from either inside or outside of application code. For example, further acceleration of IO operations, leading to enhanced system performance relative to conventional arrangements, would be desirable. Additionally or alternatively, an ability to achieve particular levels of performance at lower cost would be advantageous.